home *** CD-ROM | disk | FTP | other *** search
Wrap
package com.extensibility.xa; import com.extensibility.app.BaseAction; import com.extensibility.app.UI; import com.extensibility.rock.RTable; import com.extensibility.rock.table.QlickerDataSource; import com.extensibility.xml.BaseDeclaration; import com.extensibility.xml.ElementDeclaration; import com.extensibility.xml.SchemaFlavorIntf; import java.awt.Dialog; import java.util.EventObject; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JTable; import javax.swing.KeyStroke; import javax.swing.SwingUtilities; import javax.swing.event.ListSelectionListener; import javax.swing.event.TableModelEvent; import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; public final class ElementTable extends DeclTableExtra { static final int COL_ELEMENT = 2; static final int COL_SUPER = 3; static final int COL_CM_TEXT = 4; static final int COL_CM_TAGS = 5; static final int COL_CM_SOURCE = 6; static final int COL_ATTRS = 7; static ElementHeader rendHdr = new ElementHeader(); static final int ALLOW_WIDTH = 50; public BaseAction toggleTextAction = new 1(this, "toggle.text"); public BaseAction toggleTagsAction = new 2(this, "toggle.tags"); KeyStroke keyText; KeyStroke keyTags; String contentHeader; ListSelectionListener selectionListener = new 3(this); public ElementTable(DeclModelExtra var1) { super(var1); } public TableCellRenderer createHeaderRenderer(int var1) { return (TableCellRenderer)(var1 <= 2 ? super.createHeaderRenderer(var1) : rendHdr); } public TableCellEditor createCellEditor(int var1) { switch (var1) { case 2: return new NameQlicker((QlickerDataSource)((JTable)this).getModel()); case 3: return new NameQlicker((QlickerDataSource)((JTable)this).getModel()); case 4: case 5: default: return super.createCellEditor(var1); case 6: ContentModelQlicker var2 = new ContentModelQlicker(((DeclTable)this).getSchemaDoc(), new CMQDataSource(((DeclTable)this).getSchemaDoc())); return var2; case 7: return new AttrListQlicker(((DeclTable)this).getSchemaDoc(), (QlickerDataSource)((JTable)this).getModel()); } } public int getInitialColumnWidth(int var1) { switch (var1) { case 2: return 100; case 3: return 80; case 4: case 5: return 50; case 6: case 7: return 150; default: return super.getInitialColumnWidth(var1); } } public double getColumnWeight(int var1) { switch (var1) { case 2: return 0.1; case 3: return 0.1; case 4: case 5: default: return super.getColumnWeight(var1); case 6: case 7: return 0.45; } } private void autoCreate(ElementDeclaration var1) { SchemaFlavorIntf var2 = ((BaseDeclaration)var1).getSchema().getFlavor(); if (var2.getFlavorName().equals("osc")) { boolean var3 = var1.getAllowsText(); boolean var4 = var1.getAllowsTags(); if (var3 && !var4) { var1.setAllowsData(true); } else if (var4 && !var3) { var1.getContentModel().setMany(); } } } public void updateHeaders() { ElementDeclaration var1 = (ElementDeclaration)((DeclTable)this).getSelectedDecl(); if (var1 != null) { String var2 = var1.isTextOnly() ? UI.getString("taglist.dt.header") : UI.getString("taglist.cm.header"); if (!var2.equals(this.contentHeader)) { this.contentHeader = var2; ((JTable)this).getColumnModel().getColumn(6).setHeaderValue(this.contentHeader); ((JTable)this).getTableHeader().repaint(); } } } public void addNotify() { super.addNotify(); ElementTableModel var1 = (ElementTableModel)((JTable)this).getModel(); this.keyText = KeyStroke.getKeyStroke(var1.getHeaderMnemonic(4), 8); this.keyTags = KeyStroke.getKeyStroke(var1.getHeaderMnemonic(5), 8); ((JComponent)this).registerKeyboardAction(this.toggleTextAction, this.keyText, 1); ((JComponent)this).registerKeyboardAction(this.toggleTagsAction, this.keyTags, 1); ((RTable)this).addListSelectionListener(this.selectionListener); } public void tableChanged(TableModelEvent var1) { super.tableChanged(var1); switch (var1.getColumn()) { case -1: case 4: case 5: this.updateHeaders(); default: } } public void removeNotify() { super.removeNotify(); ((JComponent)this).unregisterKeyboardAction(this.keyText); ((JComponent)this).unregisterKeyboardAction(this.keyTags); ((RTable)this).removeListSelectionListener(this.selectionListener); } protected BaseDeclaration paste(BaseDeclaration var1, SchemaDoc var2, SchemaDoc var3) throws Exception { ElementDeclaration var4 = (ElementDeclaration)super.paste(var1, var2, var3); ElementDeclaration[] var5 = var2.getAllowedElements((ElementDeclaration)var1); for(int var6 = 0; var6 < var5.length; ++var6) { if (var3.getNamedElement(var5[var6].getName()) == null) { this.paste(var5[var6], var2, var3); } } return var4; } public boolean hasCellDialog(int var1, int var2) { if (((DeclTableExtra)this).isExtraCol(var2)) { return super.hasCellDialog(var1, var2); } else { return var2 == 6 && ((ElementTableModel)((JTable)this).getModel()).getElement(var1) != null && ((ElementTableModel)((JTable)this).getModel()).getElement(var1).getAllowsTags() || var2 == 7; } } public boolean showCellDialog(int var1, int var2, EventObject var3) { if (var2 == 6) { ElementDeclaration var6 = ((ElementTableModel)((JTable)this).getModel()).getElement(var1); ElemModelCellDialog var7 = new ElemModelCellDialog(this, (JFrame)SwingUtilities.getRoot(this), ((DeclTable)this).getSchemaDoc(), new ContentModelQlicker(((DeclTable)this).getSchemaDoc(), new CMQDataSource(((DeclTable)this).getSchemaDoc())), var6, ((ContentModelQlicker)((JTable)this).getCellEditor()).getText()); var7.setTableInfo(var1, var2); ((Dialog)var7).show(); return true; } else if (var2 == 7) { ElementDeclaration var4 = ((ElementTableModel)((JTable)this).getModel()).getElement(var1); ElemAttrListCellDialog var5 = new ElemAttrListCellDialog(this, (JFrame)SwingUtilities.getRoot(this), ((DeclTable)this).getSchemaDoc(), new AttrListQlicker(((DeclTable)this).getSchemaDoc(), (QlickerDataSource)((JTable)this).getModel()), var4, ((AttrListQlicker)((JTable)this).getCellEditor()).getText()); var5.setTableInfo(var1, var2); ((Dialog)var5).show(); return true; } else { return ((DeclTableExtra)this).isExtraCol(var2) ? super.showCellDialog(var1, var2, var3) : false; } } // $FF: synthetic method static void access$8000071(ElementTable var0, ElementDeclaration var1) { var0.autoCreate(var1); } }